package com.ruoyi.app.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 群组业务对象 app_im_group
 *
 * @author ruoyi
 * @date 2025-11-11
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class AppImGroupBo extends BaseEntity {

    /**
     * 群组ID
     */
    private String id;

    /**
     * 群组名称
     */
    private String groupName;

    /**
     * 群组头像
     */
    private String groupAvatar;

    /**
     * 群组类型：1公开群 2私有群 3聊天室
     */
    private Long groupType;

    /**
     * 群主ID
     */
    private String ownerId;


    /**
     * 成员
     */
    private String member;


    /**
     * 状态：1正常 0解散
     */
    @NotNull(message = "状态：1正常 0解散不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long status;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 搜索标识：0能被查到 1不能被查到
     */
    private Integer searchFlag;

    /**
     * 入群验证：0不需要验证 1需要验证
     */
    private Integer entryVerification;

    /**
     * 管理员
     */
    private String manager;

    /**
     * 截图标识：0允许 1不允许
     */
    private Integer screenshotFlag;

    /**
     * 成员操作标识：0允许 1不允许
     */
    private Integer memberOperationFlag;

    /**
     * 管理员查看标识：0允许 1不允许
     */
    private Integer managerLookFlag;

    /**
     * 昵称标识：0不隐藏 1隐藏
     */
    private Integer nickFlag;


    /**
     * 添加好友标识：0允许 1不允许
     */
    private Integer addFriendFlag;

    /**
     * 禁言成员
     */
    private String silenceMember;
}
